home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / wtj009.zip / VBMEM.ZIP / DLGDEMO.BAS next >
BASIC Source File  |  1992-08-17  |  9KB  |  279 lines

  1. Rem Demo for accessing Win 3.1 Common Dialogs
  2. Rem Author: Costas Kitsos, CIS 73667,1755
  3. Rem Companion to WTJ Article
  4.  
  5. DefInt A-Z
  6.  
  7. ' File Open/Save structures and declarations *****************************
  8.  
  9. Type OpenFilename
  10.      lStructSize As Long
  11.      hwndOwner As Integer
  12.      hInstance As Integer
  13.      lpstrFilter As Long
  14.      lpstrCustomFilter As Long
  15.      nMaxCustFilter As Long
  16.      nFilterIndex As Long
  17.      lpstrFile As Long
  18.      nMaxFile As Long
  19.      lpstrFileTitle As Long
  20.      nMaxFileTitle As Long
  21.      lpstrInitialDir As Long
  22.      lpstrTitle As Long
  23.      Flags As Long
  24.      nFileOffset As Integer
  25.      nFileExtension As Integer
  26.      lpstrDefExt As Long
  27.      lCustData As Long
  28.      lpfnHook As Long
  29.      lpTemplateName As Long
  30. End Type
  31.  
  32. Declare Function GetOpenFileName Lib "COMMDLG.DLL" (pOPENFILENAME As OpenFilename) As Integer
  33. Declare Function GetSaveFileName Lib "COMMDLG.DLL" (pOPENFILENAME As OpenFilename) As Integer
  34. Declare Function GetFileTitle Lib "COMMDLG.DLL" (ByVal FName As String, ByVal Title As String, Size As Integer)
  35.  
  36. Global Const OFN_READONLY = &H1
  37. Global Const OFN_OVERWRITEPROMPT = &H2
  38. Global Const OFN_HIDEREADONLY = &H4
  39. Global Const OFN_NOCHANGEDIR = &H8
  40. Global Const OFN_SHOWHELP = &H10
  41. Global Const OFN_ENABLEHOOK = &H20
  42. Global Const OFN_ENABLETEMPLATE = &H40
  43. Global Const OFN_ENABLETEMPLATEHANDLE = &H80
  44. Global Const OFN_NOVALIDATE = &H100
  45. Global Const OFN_ALLOWMULTISELECT = &H200
  46. Global Const OFN_EXTENSIONDIFFERENT = &H400
  47. Global Const OFN_PATHMUSTEXIST = &H800
  48. Global Const OFN_FILEMUSTEXIST = &H1000
  49. Global Const OFN_CREATEPROMPT = &H2000
  50. Global Const OFN_SHAREAWARE = &H4000
  51. Global Const OFN_NOREADONLYRETURN = &H8000
  52. Global Const OFN_NOTESTFILECREATE = &H10000
  53.  
  54. Global Const OFN_SHAREFALLTHROUGH = 2
  55. Global Const OFN_SHARENOWARN = 1
  56. Global Const OFN_SHAREWARN = 0
  57.  
  58.  
  59. 'ChooseColor structure and function declarations *************************
  60.  
  61. Type ChooseColor
  62.      lStructSize As Long
  63.      hwndOwner As Integer
  64.      hInstance  As Integer
  65.      RgbResult As Long
  66.      lpCustColors As Long
  67.      Flags As Long
  68.      lCustData As Long
  69.      lpfnHook As Long
  70.      lpTemplateName As Long
  71. End Type
  72.  
  73. Declare Function ChooseColor Lib "COMMDLG.DLL" (pCHOOSECOLOR As ChooseColor) As Integer
  74.  
  75. Global Const CC_RGBINIT = &H1
  76. Global Const CC_FULLOPEN = &H2
  77. Global Const CC_PREVENTFULLOPEN = &H4
  78. Global Const CC_SHOWHELP = &H8
  79. Global Const CC_ENABLEHOOK = &H10
  80. Global Const CC_ENABLETEMPLATE = &H20
  81. Global Const CC_ENABLETEMPLATEHANDLE = &H40
  82.  
  83.  
  84. 'ChooseFont structure and function declarations *************************
  85.  
  86. Type ChooseFont
  87.     lStructSize As Long
  88.     hwndOwner As Integer
  89.     hDC As Integer
  90.     lpLogFont As Long
  91.     iPointSize As Integer
  92.     Flags As Long
  93.     rgbColors As Long
  94.     lCustData As Long
  95.     lpfnHook As Long 'Integer
  96.     lpTemplateName As Long
  97.     hInstance  As Integer
  98.     lpszStyle As Long
  99.     nfonttype As Integer
  100.     nSizeMin As Integer
  101.     nSizeMax As Integer
  102. End Type
  103.  
  104. Declare Function ChooseFont Lib "COMMDLG.DLL" (pCHOOSEFONT As ChooseFont) As Integer
  105.  
  106. Global Const CF_SCREENFONTS = &H1&
  107. Global Const CF_PRINTERFONTS = &H2&
  108. Global Const CF_BOTH = (CF_SCREENFONTS Or CF_PRINTERFONTS)
  109. Global Const CF_SHOWHELP = &H4&
  110. Global Const CF_ENABLEHOOK = &H8&
  111. Global Const CF_ENABLETEMPLATE = &H10&
  112. Global Const CF_ENABLETEMPLATEHANDLE = &H20&
  113. Global Const CF_INITTOLOGFONTSTRUCT = &H40&
  114. Global Const CF_USESTYLE = &H80&
  115. Global Const CF_EFFECTS = &H100&
  116. Global Const CF_APPLY = &H200&
  117. Global Const CF_ANSIONLY = &H400&
  118. Global Const CF_NOVECTORFONTS = &H800&
  119. Global Const CF_NOOEMFONTS = CF_NOVECTORFONTS
  120. Global Const CF_NOSIMULATIONS = &H1000&
  121. Global Const CF_LIMITSIZE = &H2000&
  122. Global Const CF_FIXEDPITCHONLY = &H4000&
  123. Global Const CF_WYSIWYG = &H8000&  'must also have CF_SCREENFONTS and CF_PRINTERFONTS
  124. Global Const CF_FORCEFONTEXIST = &H10000
  125. Global Const CF_SCALABLEONLY = &H20000
  126. Global Const CF_TTONLY = &H40000
  127. Global Const CF_NOFACESEL = &H80000
  128. Global Const CF_NOSTYLESEL = &H100000
  129. Global Const CF_NOSIZESEL = &H200000
  130.  
  131. Global Const SIMULATED_FONTTYPE = &H8000
  132. Global Const PRINTER_FONTTYPE = &H4000
  133. Global Const SCREEN_FONTTYPE = &H2000
  134. Global Const BOLD_FONTTYPE = &H100
  135. Global Const ITALIC_FONTTYPE = &H200
  136. Global Const REGULAR_FONTTYPE = &H400
  137.  
  138. Global Const WM_CHOOSEFONT_GETLOGFONT = (&H400 + 1) 'WM_USER + 1
  139.  
  140. Global Const LBSELCHSTRING = "commdlg_LBSelChangedNotify"
  141. Global Const SHAREVISTRING = "commdlg_ShareViolation"
  142. Global Const FILEOKSTRING = "commdlg_FileNameOK"
  143. Global Const COLOROKSTRING = "commdlg_ColorOK"
  144. Global Const SETRGBSTRING = "commdlg_SetRGBColor"
  145. Global Const FINDMSGSTRING = "commdlg_FindReplace"
  146. Global Const HELPMSGSTRING = "commdlg_help"
  147.  
  148. Global Const CD_LBSELNOITEMS = -1
  149. Global Const CD_LBSELCHANGE = 0
  150. Global Const CD_LBSELSUB = 1
  151. Global Const CD_LBSELADD = 2
  152.  
  153.  
  154. 'Printer related structures and function declarations ********************
  155.  
  156. Type PrintDlg
  157.     lStructSize As Long
  158.     hwndOwner As Integer
  159.     hDevMode As Integer
  160.     hDevNames As Integer
  161.     hDC As Integer
  162.     Flags As Long
  163.     nFromPage As Integer
  164.     nToPage As Integer
  165.     nMinPage As Integer
  166.     nMaxPage As Integer
  167.     nCopies As Integer
  168.     hInstance As Integer
  169.     lCustData As Long
  170.     lpfnPrintHook As Long
  171.     lpfnSetupHook As Long
  172.     lpPrintTemplateName As Long
  173.     lpSetupTemplateName As Long
  174.     hPrintTemplate As Integer
  175.     hSetupTemplate As Integer
  176. End Type
  177.  
  178. Declare Function PrintDlg Lib "COMMDLG.DLL" (pPrintDLG As PrintDlg) As Integer
  179.  
  180. Global Const PD_ALLPAGES = &H0
  181. Global Const PD_SELECTION = &H1
  182. Global Const PD_PAGENUMS = &H2
  183. Global Const PD_NOSELECTION = &H4
  184. Global Const PD_NOPAGENUMS = &H8
  185. Global Const PD_COLLATE = &H10
  186. Global Const PD_PRINTTOFILE = &H20
  187. Global Const PD_PRINTSETUP = &H40
  188. Global Const PD_NOWARNING = &H80
  189. Global Const PD_RETURNDC = &H100
  190. Global Const PD_RETURNIC = &H200
  191. Global Const PD_RETURNDEFAULT = &H400
  192. Global Const PD_SHOWHELP = &H800
  193. Global Const PD_ENABLEPRINTHOOK = &H1000
  194. Global Const PD_ENABLESETUPHOOK = &H2000
  195. Global Const PD_ENABLEPRINTTEMPLATE = &H4000
  196. Global Const PD_ENABLESETUPTEMPLATE = &H8000
  197. Global Const PD_ENABLEPRINTTEMPLATEHANDLE = &H10000
  198. Global Const PD_ENABLESETUPTEMPLATEHANDLE = &H20000
  199. Global Const PD_USEDEVMODECOPIES = &H40000
  200. Global Const PD_DISABLEPRINTTOFILE = &H80000
  201. Global Const PD_HIDEPRINTTOFILE = &H100000
  202.  
  203. Type DevNames
  204.     wDriverOffset As Integer
  205.     wDeviceOffset As Integer
  206.     wOutputOffset As Integer
  207.     wDefault As Integer
  208. End Type
  209.  
  210. Global Const DN_DEFAULTPRN = &H1
  211.  
  212. 'retrieves error code
  213. Declare Function CommDlgExtendedError Lib "COMMDLG.DLL" () As Long
  214.  
  215. '************************* end of Common Dialogs Declares ************
  216.  
  217. ' GLOBAL MEMORY Functions/Constants
  218. Declare Function GlobalAlloc Lib "Kernel" (ByVal wFlags As Integer, ByVal dwBytes As Long) As Integer
  219. Declare Function GlobalFree Lib "Kernel" (ByVal hMem As Integer) As Integer
  220. Declare Function GlobalLock Lib "Kernel" (ByVal hMem As Integer) As Long
  221. Declare Function GlobalUnlock Lib "Kernel" (ByVal hMem As Integer) As Integer
  222.  
  223. Global Const GMEM_MOVEABLE = &H2
  224. Global Const GMEM_ZEROINIT = &H40
  225. Global Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
  226.  
  227. Declare Sub hmemcpy Lib "Kernel" (lpDest As Any, lpSource As Any, ByVal dwBytes As Long)
  228. Declare Function lstrcpy Lib "Kernel" (ByVal lpDestString As Any, ByVal lpSourceString As Any) As Long
  229.  
  230.  
  231. ' FONT Functions/Constants
  232. Global Const LF_FACESIZE = 32
  233.  
  234. Type LogFont
  235.     lfHeight As Integer
  236.     lfWidth As Integer
  237.     lfEscapement As Integer
  238.     lfOrientation As Integer
  239.     lfWeight As Integer
  240.     lfItalic As String * 1
  241.     lfUnderline As String * 1
  242.     lfStrikeOut As String * 1
  243.     lfCharSet As String * 1
  244.     lfOutPrecision As String * 1
  245.     lfClipPrecision As String * 1
  246.     lfQuality As String * 1
  247.     lfPitchAndFamily As String * 1
  248.     lfFaceName As String * LF_FACESIZE
  249. End Type
  250.  
  251.  
  252. ' PRINTER Functions/Constants
  253. Declare Function DeleteDC Lib "GDI" (ByVal hDC As Integer) As Integer
  254.  
  255. Type DevMode
  256.           dmDeviceName As String * 32
  257.           dmSpecVersion As Integer
  258.           dmDriverVersion As Integer
  259.           dmSize As Integer
  260.           dmDriverExtra As Integer
  261.           dmFields As Long
  262.           dmOrientation As Integer
  263.           dmPaperSize As Integer
  264.           dmPaperLength As Integer
  265.           dmPaperWidth As Integer
  266.           dmScale As Integer
  267.           dmCopies As Integer
  268.           dmDefaultSource As Integer
  269.           dmPrintQuality As Integer
  270.           dmColor As Integer
  271.           dmDuplex As Integer
  272.           dmYResolution As Integer
  273.           dmTTOption As Integer
  274. End Type
  275.  
  276. Global Const True = -1
  277. Global Const False = 0
  278.  
  279.